#ifndef NANE_HOLDER_H
#   define NANE_HOLDER_H

#   include "nane/core/types.h"

namespace nane 
{
    template<class S>
    class Holder
    {
    public:
        static void Keep( S* _instance )
        {
            s_instance = _instance;
        }
        
        static S* Instance()
        {
            return s_instance;
        }
        
        static void Clear()
        {
            s_instance = NULL;
        }
        
    protected:
        static S* s_instance;
    };
}   // namespace nane

#endif	// NANE_HOLDER_H
